// Copyright (c) Microsoft
// All rights reserved
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
// See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.
/// <tags>P2</tags>
/// <summary>(negative)caller: __GPU, lambda; callee: non __GPU, lamda</summary>
//#Expects: Error: C3930

//RUN: %clang_cc1 -std=c++amp -fsyntax-only %ampneg -verify %s

int i = 0;

auto l2 = []()
{
    i = 1;
};

auto l = []() restrict(amp,cpu)
{
    l2();//expected-error {{caller: __GPU, lambda; callee: non __GPU, lamda}}
};

bool test()
{

    l();

    if (i == 1)
    {
        return true;
    }
    else
    {
        return false;
    }
}

int main(int argc, char **argv)
{
    return test() ? 0 : 1;
}

